Laboratorio 2011-03
Esercizio 01
Si implementi in linguaggio C in ambiente Unix/Linux un programma che simuli il comportamento di una stazione ferroviaria mediante processi concorrenti, secondo le seguenti sspecifiche.
Una stazione ferroviaria è collegata con la rete ferroviaria da:
§ NLE (Numero Linee di Entrata) coppie di binari di entrata (LE, Linee di Entrata)
§ NLU (Numero Linee di Uscita) coppie di binari in uscita (LU, Linee di Uscita)
ma è attraversata da un’unica coppia di binari (e quindi è attraversabile da un solo treno alla volta).
Ogni treno che giunge alla stazione da una linea ferroviaria di entrata, può entrare nella stazione se non ci sono altri treni nella stazione stessa. Inoltre può lasciare la stazione solo se la linea di uscita selezionata è libera.
Si osservi che ogni treno arriva alla stazione in un istante di tempo casuale, si ferma in stazione per un tempo casuale e decide di proseguire su una linea scelta anch’essa a caso, occupandola infine per un numero casuale di secondi.
Quando la stazione viene liberata da un treno e più treni sono in attesa di entrare viene fatto procedere quello che arriva dalla linea di entrata con indice
più basso.
Suggerimenti